Reference: Personal Diary Management System
Introduction
In the digital age, keeping a personal
diary is easier than ever! Why not create your own Personal Diary Management System in C? This beginner-friendly C project helps students (ages 8-16) learn C programming while developing a
real-world application.
In this tutorial, we’ll walk through building a simple diary system where
users can add, view, search, and delete
diary entries using file handling in
C.
📌 Features of the
Personal Diary Management System
✅
Add Diary Entry – Save your thoughts with a date and
title.
 ✅ View Entries – Read all stored diary entries.
 ✅ Search Functionality – Find entries by date or keywords.
 ✅ Delete Entries – Remove all diary records.
 ✅ Basic Authentication (Optional)
– Password-protect your diary.
🛠 Technologies
Used
📌 Programming Language: C
 📌 Compiler: MinGW (Code::Blocks IDE)
 📌 Data Storage: File Handling (diary.txt)
📜 C Code
Implementation
Below is the complete C code for the Personal Diary Management System:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILE_NAME "diary.txt"
#define MAX_ENTRY_SIZE 500
#define PASSWORD "1234"  
void addEntry();
void viewEntries();
void searchEntry();
void deleteEntry();
int authenticateUser();
int main() {
    int
choice;
   
printf("\n=== Personal Diary Management System ===\n");
    if
(!authenticateUser()) {
       
printf("Incorrect Password. Exiting...\n");
       
return 0;
    }
    do {
       
printf("\n1. Add Entry\n2. View Entries\n3. Search Entry\n4. Delete
Entry\n5. Exit\n");
       
printf("Enter your choice: ");
       
scanf("%d", &choice);
       
getchar();
       
switch (choice) {
           
case 1: addEntry(); break;
           
case 2: viewEntries(); break;
           
case 3: searchEntry(); break;
           
case 4: deleteEntry(); break;
           
case 5: printf("Exiting...\n"); break;
           
default: printf("Invalid choice! Try again.\n");
       
}
    }
while (choice != 5);
   
return 0;
}
int authenticateUser() {
    char
pass[10];
   
printf("Enter password: ");
   
scanf("%s", pass);
   
return strcmp(pass, PASSWORD) == 0;
}
void addEntry() {
    FILE
*file = fopen(FILE_NAME, "a");
    if
(!file) { printf("Error opening file!\n"); return; }
    char
date[20], title[50], content[MAX_ENTRY_SIZE];
   
printf("Enter date (YYYY-MM-DD): ");
   
fgets(date, sizeof(date), stdin);
   
strtok(date, "\n");
   
printf("Enter title: ");
   
fgets(title, sizeof(title), stdin);
   
strtok(title, "\n");
   
printf("Enter your diary entry:\n");
   
fgets(content, sizeof(content), stdin);
   
strtok(content, "\n");
   
fprintf(file, "[Date: %s]\nTitle: %s\nContent: %s\n-----\n",
date, title, content);
   
fclose(file);
   
printf("Entry added successfully!\n");
}
void viewEntries() {
    FILE
*file = fopen(FILE_NAME, "r");
    if
(!file) { printf("No diary entries found!\n"); return; }
    char
ch;
   
printf("\n=== Diary Entries ===\n");
   
while ((ch = fgetc(file)) != EOF) { putchar(ch); }
   
fclose(file);
}
void searchEntry() {
    FILE
*file = fopen(FILE_NAME, "r");
    if
(!file) { printf("No diary entries found!\n"); return; }
    char
keyword[50], line[MAX_ENTRY_SIZE];
    int
found = 0;
   
printf("Enter keyword to search: ");
   
fgets(keyword, sizeof(keyword), stdin);
   
strtok(keyword, "\n");
   
printf("\n=== Search Results ===\n");
   
while (fgets(line, sizeof(line), file)) {
       
if (strstr(line, keyword)) {
           
found = 1;
           
printf("%s", line);
           
while (fgets(line, sizeof(line), file) && strcmp(line,
"-----\n") != 0) {
               
printf("%s", line);
           
}
           
printf("\n");
       
}
    }
   
fclose(file);
    if
(!found) { printf("No matching entries found!\n"); }
}
void deleteEntry() {
   
printf("Are you sure you want to delete all entries? (y/n):
");
    char
confirm;
   
scanf(" %c", &confirm);
    if
(confirm == 'y' || confirm == 'Y') {
       
FILE *file = fopen(FILE_NAME, "w");
       
if (file) { fclose(file); printf("All entries deleted!\n"); }
       
else { printf("Error deleting entries!\n"); }
    }
else { printf("Deletion canceled.\n"); }
}
📌 How to Run This
Project in Code::Blocks
- Open Code::Blocks IDE.
 - Create a New C File (diary_management.c).
 - Copy and Paste the Above Code.
 - Save the File.
 - Click "Build and Run" (or Press F9).
 - Interact with the
     Program via the Menu.
 
📁 Where Diary
Entries Are Stored
📝 The diary entries are saved in
a file called diary.txt.
 📌 Located in the same directory
as the compiled .exe file.
Example
of diary.txt:
[Date: 2025-03-01]
Title: My First Entry
Content: Today, I learned C programming!
-----
💡 Why This is a
Great Project for Beginners
🚀 Introduces File Handling – Learn how to read/write files in C.
 🚀 Reinforces Control Structures – Uses loops, functions, and
conditionals.
 🚀 Practical Use Case – A real-world project for personal journaling.
 🚀 Enhancement Possibilities – Add GUI, encryption, or database
storage.
📝 Conclusion
This Personal
Diary Management System is a perfect
beginner project for students and programmers learning C programming. With simple
file handling, menu-driven structure,
and basic authentication, this
project lays the foundation for more advanced applications.
💡 Try it out, enhance it, and make it your own! 🚀
📌 Download Full Code & More C Projects Below In the eBook link! 👇
------------------------ 
Brief About “C Code Projects for Beginner Students (Ages
8-16)" eBook
Are you a school student aged 8 to 16
with a budding interest in programming, or perhaps looking for a hands-on way
to master C language for your academic projects? Look no further! I am thrilled
to announce the launch of "C Code Projects for Beginner Students,"
your ultimate guide to practical C programming.
Ready to start your coding adventure?
[Click below any links to get your copy of
"C Code Projects for Beginner Students (Ages 8-16)"!] 
eBook CCP_L01 Link: 
https://play.google.com/store/books/details?id=KS54EQAAQBAJ  [Google Play Store]
https://books.google.co.in/books?id=KS54EQAAQBAJ   [Google Books]
Enjoy this eBook CCP_L01 on ‘C Code Projects
for Beginner Students’ series and do not forget to explore other resources
related to this series eBook. Thanks for visiting my blog. 
EBOOK CCP_L01 promotion Blog Link: 
https://myspacemywork2024.blogspot.com/2025/08/unlock-world-of-code-introducing-c-code.html
Happy Reading!
…till next
post, bye-bye & take care!
No comments:
Post a Comment